package org.marketlive.entity.attributes;

/*
(C) Copyright MarketLive. 2006. All rights reserved.
MarketLive is a trademark of MarketLive, Inc.
Warning: This computer program is protected by copyright law and international treaties.
Unauthorized reproduction or distribution of this program, or any portion of it, may result
in severe civil and criminal penalties, and will be prosecuted to the maximum extent
possible under the law.
*/

/**
 * Represents a primary key for an <code>IAttribute</code>.
 */
public interface IAttributeKey {

    /**
     * Returns the level represented by this key.
     * Usually one of Sku, Product, or Category.
     *
     * @return the level represented by this key
     */
    public String getAttributeLevel();

    /**
     * Sets the level represented by this key.
     * Usually one of Sku, Product, or Category.
     *
     * @param attributeLevel the level represented by this key
     */
    public void setAttributeLevel(String attributeLevel);

    /**
     * Returns the levelID represented by this key.
     * levelID is the key of the entity that has the attribute represented by this key.
     *
     * @return the levelID represented by this key
     */
    public Integer getAttributeLevelID();

    /**
     * Sets the levelID represented by this key.
     * levelID is the key of the entity that has the attribute represented by this key.
     *
     * @param attributeLevelID the levelID represented by this key
     */
    public void setAttributeLevelID(Integer attributeLevelID);

    /**
     * Returns the attribute type ID represented by this key.
     *
     * @return the attribute type ID represented by this key
     */
    public Integer getAttributeTypeID();

    /**
     * Sets the attribute type ID represented by this key.
     *
     * @param attributeTypeID the attribute type ID represented by this key
     */
    public void setAttributeTypeID(Integer attributeTypeID);
}
